// #include <iostream>
// #include <vector>
// using namespace std;


// //杨辉三角变形 牛客
// //通过规律，最简介的解法
// int FindIndex1(int n)
// {
//     if(n <=2)
//         return -1;
//     else if(n %2 == 1)
//         return 2;
//     else if(n % 4 == 0)
//         return 3;
    
//     return 4;
// }

// int FindIndex(int n)
// {
//     int m = 2*n-1;//第n行有多少个元素
//     vector<vector<int> > vv(n,vector<int>(m,0));
//     vv[0][0] =1;
//     for(int i =1; i<n; i++)
//     {
//         vv[i][0] = vv[i][2*i] =1;
//         for(int j =1; j<2*i; j++)
//         {
//             if(j == 1)
//             {
//                 vv[i][j] = vv[i-1][j-1]+vv[i-1][j];
//             }else if(j == 2*i-1)
//             {
//                 vv[i][j] = vv[i-1][j-1] +vv[i-1][j-2]; 
//             }else 
//                 vv[i][j] = vv[i-1][j] + vv[i-1][j-1] + vv[i-1][j-2];
//         }
//     }

//     for(int k =0; k<m; k++)
//     {
//         if(vv[n-1][k] % 2 ==0)
//         {
//             return k+1;
//         }
//     }

//     return -1;
// }

// int main() {
//     int n =0,index =0;
//     while(cin >> n)
//     {
//         index = FindIndex(n);
//         cout << index << endl;
//     }

// }


// //规律[-1,-1,2,3,2,4,2,3,2,4....]
// int main()
// {
//     int n =0;
//     while(cin >> n)
//     {
//         if(n <= 2)
//             cout <<-1<<endl;
//         else if(n % 4 == 1 || n % 4 == 3)
//             cout << 2 << endl;
//         else if(n % 4 ==2)
//             cout <<  4<< endl;
//         else return 3<<endl;
//     }
    
//     return 0;
// }

// int main()
// {
//     int n =0;
//     int Index[] = {4,2,3,2};
//     while(cin >> n)
//     {
//         int res = -1;
//         if(n >2)
//          res = Index[(n-2)%4];

//         cout << res << endl;
//     }

//     return 0;
// }

//-------------------------------------------------------
//字符串通配符 牛客

#include <iostream>
using namespace std;

bool StrMatch(const char* pattern,const char* str)
{
    if(*pattern == '\0' && *str == '\0')
        return true;
    if(*pattern == '\0' || *str == '\0')
        return false;

    if(*pattern == '?')
        return StrMatch(pattern+1,str+1);
    else if(*pattern == '*')
        return StrMatch(pattern+1,str) 
        || StrMatch(pattern+1,str+1)
        || StrMatch(pattern,str+1);
    else if(*pattern == *str)
        return StrMatch(pattern+1,str+1);


    return false;
}

int main() {
    string pattern,str;
    while(cin >> pattern >> str)
    {
        bool ret = StrMatch(pattern.c_str(),str.c_str());
        if(ret)
            cout << "true" <<endl;
        else cout << "false" <<endl;
    }


    return 0;
}
// 64 位输出请用 printf("%lld")